#ifndef _ReflectiveMaterial_H_
#define _ReflectiveMaterial_H_

#pragma once
#include "Material.h"

class ReflectiveMaterial : public Material {
protected:
	shared_ptr<Material> material;

public:
	ReflectiveMaterial(Float reflectiveness = 1) : Material(reflectiveness) {}
	ReflectiveMaterial(shared_ptr<Material> material, Float reflectiveness = 1) : Material(reflectiveness), material(material) {}
	~ReflectiveMaterial() {}

	virtual Color shade(const Scene *scene, const Ray &ray, const IntersectResult &intersect, const TraceState & traceState) const;
};

#endif // _ReflectiveMaterial_H_